package taskit.datastructures;

//@author A0087072A
public interface ITaskItObject {
	public static final int /*validCommands*/
		CMD_ADD = 0,
		CMD_ARCHIVE = 1,
		CMD_COMPLETE = 2,
		CMD_DELETE = 3,
		CMD_DISPLAY = 4,
		CMD_DONE = 5,
		CMD_SHOW = 6,
		CMD_SEARCH = 7,
		CMD_UNDO = 8,
		CMD_UPDATE = 9,
		CMD_REDO = 10,
		CMD_CHANGE_THEME = 11,
		CMD_EXIT = 12,
		CMD_QUIT = 13;
	
	public static final String[] validCommands = {
		"add",
		"archive",
		"complete",
		"delete",
		"display",
		"done",
		"show",
		"search",
		"undo",
		"update",
		"redo",
		"theme",
		"exit",
		"quit"
	};
	public static final int /*validAddCommands*/
		CMD_ADD_TODO = 0,
		CMD_ADD_DEADLINE = 1,
		CMD_ADD_EVENT = 2;
	public static final int /*validAddCommands*/
		CMD_DELETE_TODO = 0,
		CMD_DELETE_DEADLINE = 1,
		CMD_DELETE_EVENT = 2;
	public static final String[] validAddCommands = {
		"todo",
		"deadline",
		"event"
	};
	public static final int /*RETURN_CODES_IN_ENGLISH*/
		RETURN_SUCCESS = 0,
		RETURN_FAILURE = 1,
		ERR_CANNOT_DELETE = 2,
		ERR_NO_INDEX_NUMBER = 3,
		ERR_INDEX_OUT_OF_BOUNDS = 4,
		ERR_START_END_DATE = 5,
		ERR_INVALID_COMMAND = 6,
		ERR_CANNOT_ADD = 7,
		ERR_NOT_ENOUGH_ARGUMENTS = 8,
		ERR_WRONG_DATE_FORMAT = 9,
		ERR_CANNOT_IDENTIFY_TASK_TYPE = 10,
		ERR_CANNOT_UPDATE = 11,
		ERR_NOTHING_TO_REDO = 12,
		ERR_NOTHING_TO_UNDO = 13,
		ERR_DATE_NOT_IN_PAIRS = 14,
		ERR_UNKNOWN = 15;
	/**
	 * RETURN_CODES_IN_ENGLISH
	 * TODO: Update these as necessary, they are explanations
	 * of the above indices.
	 * Added on 18th March by joe
	 */
	public static final String[] RETURN_CODES_IN_ENGLISH= {
		/*0*/	"Success!",
				"Failure!",
				"Unable to delete",
				"Index number not found",
				"Index number out of bounds",
		/*5*/	"Start end date",
				"Invalid command",
				"Unable to add task",
				"Insufficient arguments",
				"We were unable to recognize the date you entered",
		/*10*/	"Unable to identify the task type",
				"Unable to update",
				"Redo history is empty",
				"Undo history is empty",
				"Date is required to come in pairs",
		/*15*/	"Oops! Something happened but we don't know what."
	};
	public static final String
		DATE_FORMAT_DEFAULT = "ddMMyyyyHHmm",
		DATE_FORMAT_DATE_ONLY = "ddMMyyyy",
		DATE_FORMAT_TIME_ONLY = "HHmm",
		DATE_FORMAT_EVERYTHING = "ddMMyyyyHHmmss";
	public static final String[] DATE_FORMATS = {
		DATE_FORMAT_DEFAULT,
		DATE_FORMAT_DATE_ONLY,
		DATE_FORMAT_TIME_ONLY,
		DATE_FORMAT_EVERYTHING
	};
}